Аннотации
В расширениях конфигурации в модулях заимствованных объектов можно расширить поведение методов и обработчиков событий объекта. Для этого метод предваряется аннотацией. Аннотация предваряется символом "&". Допустимые аннотации:
-
&Перед("Название метода или события")/&Before("Название метода или события") - указывает, что данный метод будет вызван перед вызовом метода из модуля расширяемого объекта,
-
&После("Название метода или события")/&After("Название метода или события") - указывает, что данный метод будет вызван после вызова метода из модуля расширяемого объекта,
-
&Вместо("Название метода или события")/&Around("Название метода или события") - указывает, что данный метод будет вызван вместо вызова метода из модуля расширяемого объекта.
-
&ИзменениеИКонтроль("Название метода")/&ChangeAndValidate("Название метода") - позволяет контролировать изменения в заимствованном методе в расширении. При заимствовании метода с аннотацией &ИзменениеИКонтроль в новый метод полностью копируется тело метода из конфигурации. Для применения этого метода требуется, чтобы его тело совпадало с телом метода в конфигурации базы данных, за исключением специальных директив и кода, размещенного внутри директивы #Вставка...#КонецВставки. Код, размещенный внутри директивы #Удаление...#КонецУдаления, не выполняется и служит для восстановления предыдущего состояния метода и контроля возможности его применения.
Для процедур можно указать один из четырех вариантов, а для функций - только &Вместо или &ИзменениеИКонтроль.
Вызвать переопределенный метод можно с помощью функции глобального контекста ПродолжитьВызов().
Наличие самого метода/обработчика в модуле расширяемого объекта необязательно. Если обработчик события в модуле расширяемого объекта отсутствует, то обработчики из расширений будут вызываться так, как будто обработчик в расширяемом модуле существует.
Набор параметров (число параметров и признаки передачи параметра по значению) метода из модуля заимствованного объекта должен в точности соответствовать набору параметров метода из модуля расширяемого объекта. В случае отсутствия обработчика события в модуле расширяемого объекта, параметры не контролируются.
Значения по умолчанию определяются по значениям по умолчанию метода из модуля расширяемого объекта.
Метод из модуля заимствованного объекта может быть не экспортируемым.
В одном модуле заимствованного объекта на один метод можно установить одну из следующих комбинаций:
-
&Перед,
-
&После,
-
&Вместо,
-
&Перед и &После.
Допускается совместное использование аннотаций и директив компиляции.
Использование в версии:
Доступен, начиная с версии 8.3.9.